草庐IT

带指针的 C++ vector

全部标签

c++ - 在 CUDA/Thrust 中,如何在 for-each 操作期间访问 vector 元素的邻居?

我正在尝试使用CUDA中的Thrust库进行一些科学模拟,但我陷入了以下操作,这基本上是一个for-each循环:device_vectorIn(N);for-eachIn(x)inInOut(x)=some_calculation(In(x-1),In(x),In(x+1));end我已经查阅了stackoverflow.com并找到了一些类似的问题:Similarquestions1但似乎只有当some_calculation函数在2个参数之间完成时才可能使用变换迭代器,因为变换迭代器最多传递两个参数。那么,对于问题2:Similarquestions2讨论就这么结束了,还没有得出

c++ - 标记为可能丢失 block 的静态指针是否损坏?

在阅读了有关Valgrind的“可能丢失”block消息后,它们似乎很糟糕。我收到静态指针类成员的错误。我想验证我们的代码没有任何问题。我从Valgrind得到这个:==27986==76bytesin1blocksarepossiblylostinlossrecord370of1,143==27986==at0x4C247F0:operatornew(unsignedlong)(vg_replace_malloc.c:319)==27986==by0x107CFEE8:std::string::_Rep::_S_create(unsignedlong,unsignedlong,std

c++ - 为什么要在函数指针或返回函数指针的函数编译之前放几十个*?

我发现这段处理多个函数指针取消引用的代码意外编译,尽管看起来无效。这怎么能编译?它是编译器中的错误吗?我在Ubuntu14.04上使用gcc4.8.2。intaddInt(intn,intm)//function{returnn+m;}int(*(*functionFactoryPtr)(intn))(int,int);//pointerint(*(functionFactory)(intn))(int,int)//function{std::cout 最佳答案 函数左值可以隐式转换为指向函数的指针([conv.func])。在您的

c++ - 将指针转换为整数是否定义了指针的总顺序?

(与mypreviousquestion相关)在QT中,QMapdocumentation说:ThekeytypeofaQMapmustprovideoperatorspecifyingatotalorder.然而,在qmap.h,他们似乎使用类似于std::less的东西比较指针:/*QMapusesqMapLessThanKey()tocomparekeys.ThedefaultimplementationusesoperatorinlineboolqMapLessThanKey(constKey&key1,constKey&key2){returnkey1inlineboolqM

c++ - C/C++ : What's faster: a for loop, 或递增指针

我想知道以下哪个代码段最快,假设目标是从T类型的元素中读取数量为numElements的somePointer并用它们做一些事情。我特别感兴趣的是循环结构本身的效率,而不是对元素所做的事情。第一候选人for(inti=0;i第二个候选人T*tempPointer=somePointer;T*endPointer=somePointer+numElements;while(tempPointer当然,第一个候选人更清晰,更不容易出错。但是,如果它实际上被编译成它似乎会生成的代码,我认为它会更慢。使用for循环需要在每次循环迭代时增加i,以及从somePointer指向的地址偏移>i*si

python - 使用 SWIG 为 Python 包装 C++。 'vector' 未声明

我正在尝试包装一个创建3Dvector的C++,以便我可以从Python调用它并可视化数据。我正在尝试使用SWIG包装,但是当我这样做时,我收到了错误消息'vector’wasnotdeclaredinthisscope并且在我能想到的每个文件中都包含了“vector”,但我不确定我必须做什么才能包含它。我已经创建了一组非常基本的测试函数来尝试查看问题出在哪里,它与我尝试运行的真实代码大致相似。测试.cpp#include#includeusingnamespacestd;vectortestfunction(vector&value){cout测试.h#ifndefTEST_H_//

c++ - 在 C++ 中防止整数 0 隐式转换为指针的最佳方法是什么

我正在尝试找出防止整数0隐式转换为nullptr_t然后传递给采用指针的构造函数的最佳方法。Explicit不会这样做,但我可以让nullptr_t导致模棱两可的重载错误:#includestructA{explicitA(char*){}};structB{B(nullptr_ta)=delete;B(char*){}};intmain(intargc,char*argv[]){Aa(0);//darnitIcompiled...Bb1(0);//good,fails,butwithonlyb/cambiguousBb2((char*)0);//good,succeedsBb3(1)

C++ 多结构 vector 错误

我正在尝试制作两个包含自定义结构的不同vector,但是当我尝试向vector添加元素时,它适用于“甲板”vector,但会引发“玩家”vector错误。我是C++的新手,不知道哪里出了问题。这些是它抛出的错误:warning:extendedinitializerlistsonlyavailablewith-std=c++11or-std=gnu++11|error:nomatchingfunctionforcallto'std::vector::push_back()'|这是我使用的代码:#include#include#includeusingnamespacestd;class

c++ - 用指向实例中方法的指针替换参数中的静态函数指针

我使用的第三方库需要将指向静态函数的指针作为回调参数传递。现在我必须做这样的事情:staticintMyCallback(...){//Callbackcodehere...}intmain(intargc,char*argv[]){ThirdPartyFunction(&MyCallback,...);}我想做的是用C++类实例的成员方法替换我必须提供的静态回调函数。像这样:classMyClass{public:intMyCallbackMethod(...);};intmain(intargc,char*argv[]){MyClassinstanceOfMyClass;Third

c++ - 如何让这个并行求和函数使用 vector 指令?

作为一个业余项目,我正在研究多线程求和算法,在处理足够大的数组时,它的性能优于std::accumulate。首先,我将描述我对此的思考过程,但如果您想直接跳到问题,请随时向下滚动到该部分。我在网上找到了很多并行求和算法,其中大部分采用以下方法:templateTparallel_sum(IT_begin,IT_end,T_init){constautosize=distance(_begin,_end);staticconstauton=thread::hardware_concurrency();if(size>partials;partials.reserve(n);autoch